'use strict';
// 通过 require 引入 vk 实例
const JSONBigNumber = require("json-bignumber")
const vk = require('vk-unicloud');
// 通过 vk.init 初始化 vk实例（只有初始化后才能使用）
vk.init({
	baseDir: __dirname,
	requireFn: require
});
module.exports = {
	/**
	 * XXXnameXXX
	 * @url admin/pages/files_mzgl/dy_tv/kh/createTvRequest 前端调用的url参数地址
	 * data 请求参数
	 * @param {String} params1  参数1
	 */
	main: async (event) => {
		let {
			data = {}, userInfo, util, filterResponse, originalParam
		} = event;
		let {
			customUtil,
			uniID,
			config,
			pubFun,
			vk,
			db,
			_
		} = util;
		let {
			uid,
			_id,
			ma_app_id,
			album_info,
			record_info
		} = data;
		let res = {
			code: 0,
			msg: ""
		};
		// 业务逻辑开始-----------------------------------------------------------
		
		let A = await vk.baseDao.selects({
		  dbName:"a_appid",
		  // 主表where条件
		  whereJson:{
		    appid:ma_app_id
		  },
		});
		
		console.log("A========",A);
		
		
		let appsecret = A.rows[0].appsecret



		let urlA = "https://open.douyin.com/oauth/client_token/"
		const accessToken = await uniCloud.httpclient.request(urlA, {
			method: 'POST',
			headers: {
				"Content-Type": "application/json",
			},
			data: {
				client_key: ma_app_id, // id
				client_secret: appsecret, // 密钥
				grant_type: "client_credential",
			},
			dataType: 'json', // 指定返回值为json格式，自动进行parseK
		})

		//创建短剧
		// 有效时间为 2 个小时
		let access_token = accessToken.data.data.access_token

		// 上传短剧信息至内容库
		let urlT = "https://open.douyin.com/api/playlet/v2/video/create/"
		let a = await uniCloud.httpclient.request(urlT, {
			method: 'POST',
			headers: {
				"Content-Type": "application/json",
				"access-token": access_token,
			},
			data: {
				ma_app_id: ma_app_id,
				album_info: album_info,
			},
			dataType: 'text', // 指定返回值为json格式，自动进行parseK
		})
		// if (JSON.stringify(record_info) === "{}") {
		// 	 a = await uniCloud.httpclient.request(urlT, {
		// 		method: 'POST',
		// 		headers: {
		// 			"Content-Type": "application/json",
		// 			"access-token": access_token,
		// 		},
		// 		data: {
		// 			ma_app_id: ma_app_id,
		// 			album_info: album_info,
		// 		},
		// 		dataType: 'json', // 指定返回值为json格式，自动进行parseK
		// 	})
		// } 
		// else {
		// 	 a = await uniCloud.httpclient.request(urlT, {
		// 		method: 'POST',
		// 		headers: {
		// 			"Content-Type": "application/json",
		// 			"access-token": access_token,
		// 		},
		// 		data: {
		// 			ma_app_id: ma_app_id,
		// 			album_info: album_info,
		// 			record_info: record_info
		// 		},
		// 		dataType: 'text', // 指定返回值为json格式，自动进行parseK
		// 	})
		// }

		let responseText = a.data


		console.log("responseText", responseText);
		// let obj = JSONBigNumber.parse(responseText);
		// console.log("obj", obj);
		// let album_id = obj.data.album_id.toString()

		// 使用正则表达式匹配album_id
		const albumIds = responseText.match(/"album_id":(\d+)/g);
		
		console.log("albumIds",albumIds);

		// 提取匹配到的album_id
		const extractedAlbumIds = albumIds.map(albumId => albumId.match(/\d+/)[0]);

		console.log(extractedAlbumIds); // 输出匹配到的album_id数组

		//  拿到album_id更新数据库
		// 执行 数据库 updateById 命令
		res.newdata = await vk.baseDao.updateById({
			dbName: "dy_tv",
			id: _id,
			dataJson: {
				album_id: extractedAlbumIds[0],
				status: true
			},
			getUpdateData: true,
		});


		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}